package com.huslee.shark.log.log4j2.interfaces;

import com.huslee.shark.log.log4j2.mode.MqMessage;
import com.huslee.shark.log.log4j2.mode.PVLogMessage;

import java.util.Map;

/**
 * @author: zhanglin574@xdf.cn
 * @date: 2021/8/9
 * @description:
 */
public interface Logger {

    void info(String  message);

    void info(String  message, Object...args);

    void debug(Object obj);

    void debug(String message, Object obj);

    void debugJson(Object obj);

    void warn(String message);

    void warn(String message, Object...args);

    void warn(String message, Throwable t);

    void error(String message);

    void error(String message, Object...args);

    void error(String message, Throwable e);

    void pv(PVLogMessage o);

    void pv(String project, String url, String method, String params, String uid, Object custom);

    void pv(String project, String url, String method, String params, String uid, Object custom, String requestId);

    void sealInfo(String appendLogPattern, Object... appendLogArguments);

    void sealInfoWithRequestId(String requestId, String appendLogPattern, Object... appendLogArguments);

    void message(Map<String,Object> msg, String appendLogPattern, Object... appendLogArguments);

    void mq(MqMessage mqMessage);

    void mq(MqMessage mqMessage, Map<String,Object> extra);
}
